%!TEX program = xelatex
\documentclass[UTF8,winfonts,10pt]{ctexart} 
\usepackage{fontspec,xltxtra,xunicode}
\usepackage{graphicx} 
\usepackage{xeCJK}
\usepackage{listings} 
%代码着色宏包
\usepackage{xcolor} 
\usepackage{ctex}

\setCJKmainfont{微软雅黑}
\setmonofont{微软雅黑}
%windows下英文可使用Consolas，等宽字体
\setmainfont{Arial} 

% --------------------------显示代码的神器-------------start--------------------------------
\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\lstset{ %
alsolanguage=Java,
alsolanguage= XML,
%背景框
  %framexleftmargin=10mm,
  frame=none,
  backgroundcolor=\color[RGB]{250,250,250}, 
  basicstyle=\footnotesize,        % 这句设置代码的大小
  breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
  breaklines=true,                 % 对过长的代码自动换行
  captionpos=bl,                    % sets the caption-position to bottom
  commentstyle=\color{mygreen},    % 浅灰色的注释
  rulesepcolor=\color{red!20!green!20!blue!20},%代码块边框投影为淡青色 
  stringstyle=\color{orange},     % 代码字符串的特殊格式
   %numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
  numberstyle={\color[RGB]{100,100,100}\tiny} ,%设置行号的样式及大小，大小有tiny,scriptsize,footnotesize,small,normalsize,large等  
  rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
  %keywordstyle=\color{blue},     
  keywordstyle=\color{blue!90}\bfseries, %代码关键字的颜色为蓝色，粗体 
  deletekeywords={...},            % if you want to delete keywords from the given language
  escapeinside={\%*}{*)},          % if you want to add LaTeX within your code
  extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
  aboveskip=0em, %代码块边框 
  %frame=single,                    % adds a frame around the code
  frame=shadowbox, %把代码用带有阴影的框圈起来
  keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
  escapeinside=``, % 英文分号中可写入中文
  breakindent=22pt, % 
  %language=Python,                 % the language of the code
  morekeywords={*,...},            % if you want to add more keywords to the set
  numbers=left,                    % 左侧显示行号 往左靠,还可以为right，或none，即不加行号
  numbersep=8pt,                   % 设置行号与代码的距离，默认是5pt
  showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
  showstringspaces=false,          % 不显示代码字符串中间的空格标记
  showtabs=false,                  % show tabs within strings adding particular underscores
  stepnumber=1,                    % 若设置为2，则显示行号为1,3,5，即stepnumber为公差,默认stepnumber=1
  tabsize=2,                       % sets default tabsize to 2 spaces
  % 设定中文冲突，断行，列模式，数学环境输入，listing数字的样式  
  extendedchars=false,columns=flexible,mathescape=true  
}
% --------------------------显示代码的神器-------------end--------------------------------
\title{在IDEA下开发SpringMVC4入门 \\ [2ex] \begin{large} 使用IntelliJ IDEA 2017开发基于Maven+Spring MVC4+Github的入门Java项目 \end{large} }

\author{姚攀}


\begin{document}
\maketitle

%开启新的一页
\newpage

\subsubsection*{什么是MVC？MVC（Model-View-Controller）三元组的概念：}

\par{Spring Mvc是基于MVC的一个框架，是一种设计模式，是开发软件程序的一种解决方案  。}

\par{Model（模型）：数据模型，提供要展示的数据，因此包含数据和行为，可以认为是领域模型或JavaBean组件（包含数据和行为），不过现在一般都分离开来：Value Object（数据） 和 服务层（行为）。也就是模型提供了模型数据查询和模型数据的状态更新等功能，包括数据和业务。}

\par{View（视图）：负责进行模型的展示，一般就是我们见到的用户界面，客户想看到的东西。}

\par{Controller（控制器）：接收用户请求，委托给模型进行处理（状态改变），处理完毕后把返回的模型数据返回给视图，由视图负责展示。 也就是说控制器做了个调度员的工作。}

\subsubsection*{为什么用IntelliJ IDEA作为Java的开发工具?}

Eclipse将自己定位为一个抽象平台，用来使用插件构建任何工具，而IDEA则定位为一个“智能的Java IDE”。

\indent\par 
1、编码：
 IDEA足够“聪明”，真正懂得上下文。在任何时候无论你把光标放置在哪里，IDEA都知道你在哪里并知道在那能干什么。
  
 \indent \par 
 2、调试：
 使用IntelliJ IDEA调试，你只需要把光标移到你的表达式中然后按下Alt+F8。IntelliJ IDEA会很好的理解这个你可能需要的表达式，然后显示一个对话窗口，其中有一些它给出的建议参数变量。你也可以编辑并在对话框中立即得到这个表达式的值。相当的方便！试过这个特性后，你就不会再想在Eclipse中调试了。
 
  \indent \par  
 3、重构：
 IDEA可以实现比eclipse更“完美”的重构，它能读懂你需要什么，然后针对不同的情况提供给你最适合的解决方案。 
 
  \indent \par
 其实IDEA还有更多强大的功能等待你的挖掘，相信我，当你用上了IDEA，你将会彻底抛弃其他的Java IDE开发工具。
 
 
 


%\section*{一级标题}
\subsection*{一、修改pom.xml文件，加载 Spring MVC相关的依赖Jar包}相关Jar包版本号声明

\begin{lstlisting}[language=XML]
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dayu</groupId>
    <artifactId>lesson1ssm</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>lesson1-ssm Maven Webapp</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jdk.version>1.8</jdk.version>
        <!-- spring版本号 -->
        <spring.version>4.3.7.RELEASE</spring.version>
        <!-- log4j日志文件管理包版本 -->
        <slf4j.version>1.7.25</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>

    <dependencies>
        <!-- springframework start -->
        <!-- spring mvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>
        <!-- spring核心包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>$\$${spring.version}</version>
        </dependency>
        <!-- springframework end -->

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>lesson1-ssm</finalName>
    </build>
</project>
\end{lstlisting}



\par{二级标题后第二段正文}

\subsection*{1.2二级标题}
\subsubsection*{1.2.1 三级标题}
三级标题后第一段正文
\par{三级标题后第二段正文}
\subsubsection*{1.2.2 三级标题}
三级标题后第一段正文
\par{三级标题后第二段正文}

% 插入程序代码，哈哈
% \lstset{language=C}
% 插入要显示的代码
\begin{lstlisting}[language=C]
#include <iostream>
using namespace std;
int main(){
    cout << "Hello world!" << endl;
}
\end{lstlisting}



% http://www.voidcn.com/blog/u012176591/article/p-1556408.html

\begin{lstlisting}[language=C,title={bubbleSort.c}]
#include <iostream>
#define LENGTH 8
using namespace std;
// 枯需要bubbleSort 顶替顶替顶替
int main() {
	int temp,number[LENGTH]={95,45,15,78,84,51,24,12};
	for(int i=0;i<LENGTH;i++)
		for(int j=0;j<LENGTH-1-i;j++)
			if(number[j]>number[j+1]) {
				temp=number[j];
				number[j]=number[j+1];
				number[j+1]=temp;
			} //if end ``
	for(int i=0;i<LENGTH;i++) cout<<number[i]<<" ";
	cout<<endl;
}//main end
\end{lstlisting}





% 加粗、斜体、下划线、空格
\textbf{文字}
\emph{文字}
\underline{文字}
%加粗的文字再加下划线：
\underline{\textbf{文字}}

%插入目录
\tableofcontents

\begin{enumerate}
\item 夺斯柯达基本斯柯达
\item ccccccc
\end{enumerate}

%插入目录
\tableofcontents

% 插入表格
\begin{center}
\begin{tabular}{|c|c|}
\hline
a & b \\ \hline
c & d\\
\hline
\end{tabular}
\end{center}

%插入图片 如果想插入inline的图形, 直接使用
\includegraphics[height=6.00in]{images/demo.jpg}

% 如果你想插入浮动图形, 使用
\begin{figure}[htbp]
\centering\includegraphics[width=3.5in]{images/demo.jpg}
\caption{something}\label{标签到底有没有用呢}
\end{figure}

\end{document}


